package com.xindaoapp.happypet.protocol;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import android.content.Context;
import android.util.Pair;

import com.loopj.android.http.RequestParams;
import com.xindaoapp.happypet.bean.AddressDetailInfo;
import com.xindaoapp.happypet.bean.AddressInfo;
import com.xindaoapp.happypet.bean.BaseEntity;
import com.xindaoapp.happypet.bean.BrandBean;
import com.xindaoapp.happypet.bean.ConsigneeInfo;
import com.xindaoapp.happypet.bean.DaShangRecord;
import com.xindaoapp.happypet.bean.DaShangRest;
import com.xindaoapp.happypet.bean.Dayens;
import com.xindaoapp.happypet.bean.DianZanListData;
import com.xindaoapp.happypet.bean.ExchangeResult;
import com.xindaoapp.happypet.bean.Fans;
import com.xindaoapp.happypet.bean.FreeUseListData;
import com.xindaoapp.happypet.bean.GoodsListInfo;
import com.xindaoapp.happypet.bean.GoodsRecord;
import com.xindaoapp.happypet.bean.GroupInfo;
import com.xindaoapp.happypet.bean.Groups;
import com.xindaoapp.happypet.bean.HasNew;
import com.xindaoapp.happypet.bean.HomeBanner;
import com.xindaoapp.happypet.bean.HomeBannerEntity;
import com.xindaoapp.happypet.bean.InformMessage;
import com.xindaoapp.happypet.bean.InteralBanner;
import com.xindaoapp.happypet.bean.InteralGoodsdesc;
import com.xindaoapp.happypet.bean.InteralList;
import com.xindaoapp.happypet.bean.InviteInfo;
import com.xindaoapp.happypet.bean.MainDatas;
import com.xindaoapp.happypet.bean.MainZuixinData;
import com.xindaoapp.happypet.bean.Message;
import com.xindaoapp.happypet.bean.MessageCenterInfo;
import com.xindaoapp.happypet.bean.MessageInfo;
import com.xindaoapp.happypet.bean.MyInformMessage;
import com.xindaoapp.happypet.bean.MyMessageInfo;
import com.xindaoapp.happypet.bean.MyRequestFriend;
import com.xindaoapp.happypet.bean.MyTasklist;
import com.xindaoapp.happypet.bean.NearByInfo;
import com.xindaoapp.happypet.bean.NearPictureBean;
import com.xindaoapp.happypet.bean.NiuniuRecord;
import com.xindaoapp.happypet.bean.PetInfo;
import com.xindaoapp.happypet.bean.PostImgData;
import com.xindaoapp.happypet.bean.PostLandlordInfos;
import com.xindaoapp.happypet.bean.PostLayerInfos;
import com.xindaoapp.happypet.bean.PostListEntity;
import com.xindaoapp.happypet.bean.PostListEntity2;
import com.xindaoapp.happypet.bean.PrivateMessageInfo;
import com.xindaoapp.happypet.bean.Product;
import com.xindaoapp.happypet.bean.QiandaoRecord;
import com.xindaoapp.happypet.bean.ReYiListData;
import com.xindaoapp.happypet.bean.RecommendCicleData;
import com.xindaoapp.happypet.bean.RecommendInfo;
import com.xindaoapp.happypet.bean.ReplyInfo;
import com.xindaoapp.happypet.bean.SecondClass;
import com.xindaoapp.happypet.bean.SendPrivateLetterReturnResult;
import com.xindaoapp.happypet.bean.ShareRecordInfo;
import com.xindaoapp.happypet.bean.ShareToWeibaResult;
import com.xindaoapp.happypet.bean.ShoppingCartInfo;
import com.xindaoapp.happypet.bean.SplashPictureBean;
import com.xindaoapp.happypet.bean.TagInfos;
import com.xindaoapp.happypet.bean.UpdateInfo;
import com.xindaoapp.happypet.bean.ZanListData;
import com.xindaoapp.happypet.entry.CommentInfos;
import com.xindaoapp.happypet.entry.GoodsInfos;
import com.xindaoapp.happypet.entry.MyLocation.Locations;
import com.xindaoapp.happypet.entry.MyReplyInfos;
import com.xindaoapp.happypet.entry.OrderInfo;
import com.xindaoapp.happypet.entry.PostCommentInfos;
import com.xindaoapp.happypet.utils.IRequest;
import com.xindaoapp.happypet.utils.KeyValuePair;

public interface MoccaApi {

    // 免费试用
    // public static final String FREEUSELISTURL = "http://bbs.chinapet.com/plugin.php?";

    public static final String SHOPURL = "http://ts.leepet.com/plugins/API.v1.0/?";

    /**
     * http://ts.leepet.com/plugins/API.v1.0/?&a=order&m=cartList
     * http://bbs.chinapet.com/plugin.php?id=leepet_thread:api&action=indexPosts
     */
    public static final String BASEURL = "http://bbs.chinapet.com/plugin.php?";
    public static final String INTEGRALURL =
            "http://ts.leepet.com/plugins/API.v1.0/?&a=goods&m=integralBanner";
    public static final String INTEGRALDESCURL =
            "http://ts.leepet.com/plugins/API.v1.0/?&a=goods&m=getIntegralGoods";

    public static final String USERINTEGRAL =
            "http://ts.leepet.com/plugins/API.v1.0/?&a=goods&m=userIntegral";
    public static final String ADDUSERINTEGRAL =
            "http://ts.leepet.com/plugins/API.v1.0/?&a=goods&m=addUserIntegral";

    public static final String SHOPBASEURL =
            "http://ts.leepet.com/plugins/API.v1.0/?&a=order&m=cartList";

    public static final String CHECKUPDATE =
            "http://manage.leepet.com/index.php?m=Api&c=Version&a=version_interface";
    // "http://manage.leepet.com/index.php?m=Api&c=Api&a=version_interface";
    // "http://ts.leepet.com/plugins/API.v1.0/?&a=version&m=get_version";
    public static final String CHECKUPDATE2 =
            "http://manage.leepet.com/index.php?m=Api&c=Version&a=version_interface";
    /**
     * 上传图片文件
     */
    public static final String NEWATTACHMENTURL = BASEURL
            + "id=leepet_thread:api&action=newattachment";
    /**
     * 发帖，发正文
     */
    public static final String INDEXPOSTSURL = BASEURL + "id=leepet_thread:api&action=indexPosts";
    /**
     * 上传视频文件
     */
    public static final String VIDREQUESTURL = BASEURL + "id=leepet_thread:api&action=newvideo";
    /**
     * 回复
     */
    public static final String POSTREPLY = BASEURL + "id=leepet_thread:api&action=postReply";

    public static final String ACTION_MESSAGE_PRIVATE_LIST = "message_private_list";
    public static final String ACTION_MESSAGE_PRIVATE_SHOW = "message_private_show";
    public static final String ACTION_MESSAGE_SEND = "message_send";
    public static final String ACTION_MESSAGE_IGNORE = "message_ignore";
    public static final String ACTION_MESSAGE_DELETE = "message_delete";
    public static final String ACTION_THREAD_SHOW_FIRST = "threadshowfirst";
    public static final String ACTION_THREAD_SHOW_LAYER = "threadshowlayer";
    public static final String ACTION_MYTHREAD = "mythread";
    public static final String ACTION_MYPOST = "mypost";
    public static final String ACTION_LOGINBINSTATUS = "loginbindstatus";
    public static final String ACTION_LOGIN = "login";
    public static final String ACTION_WBLOGINCHECK = "wblogincheck";
    public static final String ACTION_QQLOGINCHECK = "qqlogincheck";
    public static final String ACTION_WeiXinLOGINCHECK = "wxlogincheck";
    public static final String ACTION_REG = "reg";
    public static final String ACTION_GETPASSWD = "getPasswd";
    public static final String ACTION_FOLLOWADD = "followadd";
    public static final String ACTION_FOLLOWDEL = "followdel";
    public static final String ACTION_USER_LOCAL_CHECK = "user_local_check";

    public static final String ACTION_INDEXGROUP = "indexgroup";
    public static final String ACTION_INDEXFORUM = "indexforum";
    public static final String ACTION_GROUPMYLIST = "groupmylist";
    public static final String ACTION_GROUPRECOMMENDLIST = "grouprecommendlist";
    public static final String ACTION_INDEXRECOMMENDTHREAD = "indexrecommendthread";
    public static final String ACTION_GROUPJOIN = "groupjoin";
    public static final String ACTION_GROUPOUT = "groupout";
    public static final String ACTION_CREDITDUIHUAN = "creditduihuan";
    public final static String ACTION_LOGINSIGN = "sign";// 登陆签到

    public static final String ACTION_FOLLOWFANS = "followfans";
    public static final String ACTION_FOLLOWLIST = "followlist";
    public static final String ACTION_INDEXRECOMMENDDAREN = "indexrecommenddaren";

    public static final String ACTION_REQUESTCODE = "sflogin_invitereg";
    public static final String ACTION_GOODSDETAIL = "goodsDetail";

    /**
     * 兑换 + 取消 + 兑换记录的ID
     */
    public static final String ACTION_SHOPDUIHUAN = "shopduihuan";
    public static final String ACTION_SHOPQUXIAO = "shopquxiao";
    /**
     * 搜索我的好友
     */
    public static final String ACTION_SEARCHMYATTENTION =
            "id=leepet_thread:api&action=searchmyfriend";

    /**
     * 搜索我搜藏的帖子
     */
    public static final String ACTION_SEARCHCOLLECTION =
            "id=leepet_thread:api&action=searchmycollection";

    public static final String PARAMS_INTEGRALID = "integral_id";
    public static final String PARAMS_GOODSID = "goodsid";


    /**
     * 免费试用
     */
    public static final String ACTION_FREEUSE = "activity_shiyong";

    /**
     * 标记所有为已读
     */
    public static final String ACTION_NOTICE_CLEANNEW = "notice_cleannew";
    /**
     * 获取用户信息
     */
    public static final String ACTION_GETUSERINFOBYUID = "getUserInfoByUid";
    /**
     * 消息中心
     */
    public static final String ACTION_MESSAGECENTER = "messagecenter";
    /**
     * /** 消息中心 新的
     */
    public static final String ACTION_MESSAGECENTER_NEW = "messagecate";
    /**
     * /** 消息中心 回复我的
     */
    public static final String ACTION_REPLY = "messagecate_post";
    /**
     * /** 消息中心 @ 我的
     */
    public static final String ACTION_AT = "messagecate_at";
    /**
     * 消息中心删除
     */
    public static final String ACTION_NOTICEDELETE = "notice_delete";
    /**
     * 点击消息更改状态
     * http://bbs.chinapet.com/plugin.php?id=leepet_thread:api&action=notice_click&notice_id=2700526
     */
    public static final String ACTION_NOTICECLICK = "notice_click";
    /**
     * 积分商城
     */
    public static final String ACTION_MYTASKLIST = "mytasklist";

    /**
     * 站内分享
     */
    public static final String ACTION_SHAREZHANNEI = "sharezhannei";

    /**
     * 申请试用
     */
    public static final String ACTION_ACTIVITY_APPLY = "activity_apply";

    /**
     * 我的邀请信息
     */
    public static final String ACTION_INVITEINFO = "sflogin_invitereginfo";
    /**
     * 我的邀请好友列表
     */
    public static final String ACTION_MYFRIEND = "sflogin_invitereglist";
    /**
     * 推荐圈子
     */
    public static final String ACTION_RECOMMEND_CICLE = "indextag";
    /**
     * 帖子详情 图片
     */
    public static final String ACTION_THREADSHOWIMG = "threadshowimg";
    /**
     * 根据标签 获取帖子列表
     */
    public static final String ACTION_THREADLISTBYTAGID = "threadlistbytagid";



    public static final String INTEGRALGOODSURL = "http://ts.leepet.com/plugins/API.v1.0/?";

    public static final String PARAM_A = "a";
    public static final String PARAM_M = "m";
    public static final String PARAM_GOODS = "goods";
    public static final String PARAM_INTEGRALBANNER = "integralbanner";
    public static final String PARAM_INTEGRALGOODS = "getIntegralGoods";

    /**
     * 主页 banner
     */
    public static final String ACTION_INDEXBANNER = "indexbanner";
    /** 获取推荐圈子 */
    public static final String ACTION_RECOMMENDLIST = "grouprecommendlist";
    /** 获取推荐圈子 */
    public static final String ACTION_MY_GROUP = "groupmylist";
    /** 动态圈子列表 */
    public static final String ACTION_DONGTAI_LIST = "groupmynewthread";

    public static final String ACTION_SHARE_SEND = "sharesend";
    public static final String ACTION_BEAUTIFUL =
            "id=leepet_thread:api&action=threadlist&filter=pic";


    public static final String PARAM_MESSAGE = "message";
    public static final String PARAM_TOUID = "touid";
    public static final String PARAM_PMID = "pmid";
    public static final String PARAM_USERNAME_ = "username";
    public static final String PARAM_PASSWORD = "password";
    public static final String PARAM_TOUSERNAME = "tousername";
    public static final String PARAM_CLIENTTYPE = "type";
    public static final String PARAM_APPID = "appid";

    public static final String PARAM_ID = "id";
    public static final String PARAM_ACTION = "action";
    public static final String PARAM_TITLE = "title";
    public static final String PARAM_CONTENT = "content";
    public static final String PARAM_AIDLIST = "aidlist";
    public static final String PARAM_FILE = "file[%s]";
    public static final String PARAM_UID = "uid";
    public static final String PARAM_UIDLIST = "uidlist";
    public static final String PARAM_FID = "fid";
    public static final String PARAM_IMAGE = "img";
    public static final String PARAM_VIDEO = "video";
    public static final String PARAM_ISSHARE = "isshare";
    public static final String PARAM_WEBVIDEODATA = "webvideodata";
    /** 视频第一帧图片（上传视频的时候一块上传） */
    public static final String PARAM_VIDEOIMG = "video_img";
    public static final String PARAM_TYPE = "type";
    public static final String PARAM_COME = "come";
    public static final String PARAM_VIDEOIDLIST = "videoidlist";
    public static final String PARAM_ISAPPLE = "isapple";

    public static final String LEEPET_THREAD_API = "leepet_thread:api";
    public static final String LEEPET_THREAD_SHARESEND = "leepet_thread:qrcode";
    public static final String INDEXPOSTS = "indexPosts";
    public static final String VIDEO = "video";
    public static final String IMG = "img";
    public static final String COVERIMG = "Filevideocover";
    public static final String VERSION = "1.0";
    public static final String PARAM_VERSION = "version";
    public static final String PARAM_USERID = "userID";
    public static final String PARAM_NOTICEID = "notice_id";
    public static final String PARAM_PAGE = "page";
    public static final String PARAM_PAGESIZE = "pagesize";
    public static final String PARAM_TAGID = "tagid";
    public static final String PARAM_POSITION = "position";
    public static final String PARAM_RECID = "recID";
    public static final String PARAM_GOODSNUMBER = "goodsNumber";
    public static final String PARAM_ORDER_AMOUNT = "order_amount";
    public static final String PARAM_SHIPPING_FEE = "shipping_fee";
    public static final String PARAM_POSTSCRIPT = "postscript";
    public static final String DATA = "data";

    public static final String PARAM_PROVINCESID = "provincesID";
    public static final String PARAM_CITYID = "cityID";
    public static final String PARAM_AREAID = "areaID";
    public static final String PARAM_ADDRESS = "address";
    public static final String PARAM_USERNAME = "userName";
    public static final String PARAM_CODE = "code";
    public static final String PARAM_PHONE = "phone";
    public static final String PARAM_EMAIL = "email";
    public static final String PARAM_ADDRESSID = "addressID";
    public static final String PARAM_BESTTIME = "best_time";
    public static final String PARAM_FOLLOW_UID = "follow_uid";
    public static final String PARAM_KEYWORD = "keyword";
    /** flag=0是关注，1是粉丝 */
    public static final String PARAM_FLAG = "flag";

    public static final String STATUS = "status";
    public static final String ORDER_SN = "order_sn";
    public static final String ARRAY = "array";
    public static final String RESULT = "result";
    public static final String MSG = "msg";

    public final static String PARAM_THREADSHOW = "threadshow";// 帖子详情
    public final static String PARAM_TID = "tid";
    public final static String PARAM_PIDLIST = "pidlist";
    public final static String PARAM_ONLYAUTHOR = "onlyauthor";
    public final static String PARAM_ISDESC = "isdesc";
    public final static String PARAM_PID = "pid";
    public final static String PARAM_REASON = "reason";
    public final static String PARAM_SCORE = "score2";
    // public final static String PARAM_TOUID = "touid";
    // public final static String PARAM_TYPE = "type";

    public static final String PARAM_REPQUOTE = "repquote";
    /** 榜单中 使用的actid */
    public final static String PARAM_ACTID = "actid";
    /** 个人信息中 修改性别和地址 */
    public final static String PARAM_SEX = "sex";
    public final static String PARAM_PROVINCE = "province";
    public final static String PARAM_CITY = "city";
    public final static String PARAM_AREA = "area";

    public static final String PARAM_BAIDU_AK = "ak";
    public static final String PARAM_BAIDU_OUTPUT = "output";
    public static final String PARAM_BAIDU_QUERY = "query";
    public static final String PARAM_BAIDU_SCOPE = "scope";
    public static final String PARAM_BAIDU_LOCATION = "location";
    public static final String PARAM_BAIDU_RADIUS = "radius";

    public static final String RESPONSE_ISNEW = "isnew";
    public static final String RESPONSE_ARRAY = "array";
    public static final String RESPONSE_MSG = "msg";
    public static final String RESPONSE_RESULT = "result";
    public static final String RESPONSE_USERINFO = "userinfo";

    public static final String RESPONSE_NIUNIU = "niuniu";
    public static final String PARAM_EXID = "ex_id";
    public static final String PARAM_ADDRESS_ID = "address_id";
    public static final String PARAM_NEED = "need";


    public static final String PARAM_INDEX = "index";
    public static final String PARAM_BANG = "bang";

    // 参数值
    public static final String VALUE_THREAD_POST = "threadpost";
    public static final String VALUE_THREAD_SHOW = "threadshow";

    public static final String VALUE_WXSESSION = "wxsession";
    public static final String VALUE_WXTIMELINE = "wxtimeline";
    public static final String VALUE_SINA = "sina";

    public static final String ACTION_NEARBYBANNER =
            "id=leepet_thread:api&action=indexbanner&type=shaitu";

    // http://bbs.chinapet.com/plugin.php?id=leepet_thread:api&action=threadshowfirst&shaitu=1&tid=6599969
    public static final String ACTION_ACTIVITYBANNER =
            "id=leepet_thread:api&action=threadshowfirst&shaitu=1";
    /**
     * 活动列表图片展示
     */
    public static final String ACTION_NEARPICTURE = "id=leepet_thread:api&action=shaitulist";

    /**
     * 我参加的活动接口
     */
    public static final String ACTION_MYJOINACTIVITY = "id=leepet_thread:api&action=shaitulistofmy";

    /**
     * 活动详情图片展示
     */
    public static final String ACTION_SPLASHPICTURE = "id=leepet_thread:api&action=shaitushow";

    /**
     * 新增加分享参数
     */
    public static final String VALUE_QQ = "qq";
    public static final String VALUE_QQZONE = "qzone";
    // public static final String VALUE_WEIBA = "weiba";

    public static final String VALUE_COME_PERSONCENTER = "personcenter";

    public static final String ACTION_DELETEADDRESS =
            "http://ts.leepet.com/plugins/API.v1.0/?&a=goods&m=delAddress";

    /**
     * 检查更新
     * 
     * @param iRequest
     */
    public void checkUpdate(String VersionCode, IRequest<UpdateInfo> iRequest);

    /**
     * 获取购物车列表
     */
    public void getShoppingCart(String userId, IRequest<ArrayList<ShoppingCartInfo>> iRequest);

    /**
     * 获取收货人信息
     */
    public void getConsigneeCart(IRequest<List<ConsigneeInfo>> iRequest);

    /**
     * 删除购物车
     */
    public void deleteShoppingCart(String userId, String recID, IRequest<Boolean> iRequest);

    /**
     * 修改购物车数量
     */
    public void editCart(String userID, int goodsNumber, String recID,
            IRequest<Pair<Boolean, String>> iRequest);

    /**
     * 添加收货地址
     */
    public void addAddress(String userId, int provincesID, int cityID, int areaID, String address,
            String userName, String code, String phone, String email, String addressID,
            IRequest<Boolean> iRequest);


    /**
     * 删除收货地址
     * 
     * @param userID
     * @param addressID
     * @param iRequest
     */
    public void deleteAddress(String userID, String addressID, IRequest<Boolean> iRequest);

    /**
     * 修改收货地址
     * 
     * @param userId
     * @param provincesID
     * @param cityID
     * @param areaID
     * @param address
     * @param userName
     * @param code
     * @param phone
     * @param email
     * @param addressID
     * @param iRequest
     */
    public void editAddress(String userId, int provincesID, int cityID, int areaID, String address,
            String userName, String code, String phone, String email, String addressID,
            IRequest<Boolean> iRequest);

    /**
     * 获取我的收货地址
     * 
     * @param userID
     * @param iRequest
     */
    public void getMyAddress(String userID, IRequest<List<AddressInfo>> iRequest);

    /**
     * 获取地址详细
     * 
     * @param userID
     * @param addressID
     * @param iRequest
     */
    public void getMyAddressDetail(String userID, String addressID,
            IRequest<AddressDetailInfo> iRequest);

    /**
     * 设置默认收货地址
     */
    public void setDefaultAddressDetail(String userID, String addressID, IRequest<Boolean> iRequest);

    /**
     * 设置默认收货地址
     */
    public void getDefaultAddress(String userID, IRequest<AddressDetailInfo> iRequest);

    /**
     * 添加订单
     */
    public void addOrder(String userID, String addressID, String recID, String order_amount,
            String shipping_fee, String postscript, String bestTime, IRequest<OrderInfo> iRequest);

    /**
     * 添加订单
     */
    public void getCartList(String userID, IRequest<String> iRequest);

    /**
     * 消息中心，回复
     */
    public void getReplyList(String userID, int page, int pageSize,
            IRequest<List<ReplyInfo>> iRequest);

    /**
     * 消息中心，通知
     */
    public void getInformMessageList(String userID, int page, int pageSize,
            IRequest<List<InformMessage>> iRequest);

    /**
     * 消息中心，通知 最新
     */
    public void getMyInformMessageList(String userID, int page, int pageSize,
            IRequest<List<MyInformMessage>> iRequest);

    /**
     * 消息中心，通知
     */
    public void deleteInformMessage(String notice_id, IRequest<Pair<Boolean, String>> iRequest);

    public void getPrivateMessageList(int page, int pageSize, IRequest<List<MessageInfo>> iRequest);

    /**
     * 获取我跟某个uid的对话详情列表
     * 
     * @param touid
     * @param iRequest
     */
    public void getPrivateMessageListWithUid(String touid,
            IRequest<List<PrivateMessageInfo>> iRequest);

    /**
     * 发送私信
     */
    public void sendPrivateMessage(String username, String message,
            IRequest<SendPrivateLetterReturnResult> iRequest);

    /**
     * 忽略某人的消息
     */
    public void ignorePrivateMessageWithUid(String username,
            IRequest<Pair<Boolean, String>> iRequest);

    /**
     * 删除某人的消息
     */
    public void deletePrivateMessageWithUid(String touid, IRequest<Pair<Boolean, String>> iRequest);


    /**
     * 删除某人的消息
     */
    public void deletePrivateMessage(String touid, String pmid,
            IRequest<Pair<Boolean, String>> iRequest);


    /**
     * 获取运费
     * 
     * @param recID
     * @param provinceID
     * @param iRequest
     */
    public void getFreight(String recID, int provinceID, IRequest<Float> iRequest);

    /**
     * 获取帖子楼主信息
     * 
     * @param uid
     * @param tid
     * @param onlyauthor
     * @param page
     * @param pageSize
     */
    public void getPostFirstDetail(String uid, String tid, IRequest<PostLandlordInfos> iRequest);

    /**
     * 获取帖子楼层信息
     */
    public void getPostLayerDetail(String uid, String tid, String onlyauthor, String mPkUid,
            int page, int floor, int order, final IRequest<PostLayerInfos> iRequest);

    /**
     * 我的发表
     */
    public void getMyPost(String uid, int page, int pageSize, IRequest<List<Message>> iRequest);


    public void getMyReply(String uid, int page, int pageSize, IRequest<List<Message>> iRequest);

    /**
     * return first 新浪微博 second qq
     */
    public void getLoginBinStatus(IRequest<String> iRequest);

    /**
     * 登录（普通）
     * 
     * @param username
     * @param password
     * @param iRequest
     */
    public void login(String username, String password, IRequest<Map<String, Object>> iRequest);

    /**
     * 登录（QQ）
     * 
     * @param conuin
     * @param conuinsecret
     * @param conopenid
     * @param iRequest
     */
    public void loginByQQ(String conuin, String conuinsecret, String conopenid,
            IRequest<Map<String, Object>> iRequest);

    /**
     * 登录（新浪）
     * 
     * @param sina_uid
     * @param token
     * @param oauth2_expiretime
     * @param iRequest
     */
    public void loginBySina(String sina_uid, String token, String oauth2_expiretime,
            IRequest<Map<String, Object>> iRequest);

    /**
     * 登陆(微信)
     * 
     * @param expires_in
     * @param openid
     * @param access_token
     * @param iRequest
     */
    public void loginByWeiXin(String expires_in, String openid, String access_token,
            String userparm, IRequest<Map<String, Object>> iRequest);

    /**
     * 注册
     * 
     * @param username
     * @param password
     * @param email
     * @param iRequest
     */
    public void register(String username, String password, String email,
            IRequest<Map<String, Object>> iRequest);

    /**
     * 找回密码
     * 
     * @param email
     * @param iRequest
     */
    public void getPassword(String email, IRequest<KeyValuePair<Integer, String>> iRequest);

    /**
     * 添加关注
     * 
     * @param followUid
     * @param followUsername
     * @param iRequest
     */
    public void addFollowAdd(String followUid, String followUsername, IRequest<Boolean> iRequest);

    /**
     * 取消关注
     * 
     * @param follow_uid
     * @param iRequest
     */
    public void deleteFollowAdd(String follow_uid, IRequest<Boolean> iRequest);

    /**
     * 获取其他用户的用户信息
     * 
     * @param uid
     * @param iRequest
     */
    public void getUserInfoByUid(String uid, IRequest<Map<String, Object>> iRequest);

    /**
     * 消息中心信息列表
     * 
     * @param page
     * @param pageSize
     * @param iRequest
     */
    public void getMessageCenterInfos(int page, int pageSize,
            IRequest<KeyValuePair<Integer, List<MessageCenterInfo>>> iRequest);

    /**
     * 消息中心 回复我的
     * 
     * @param page
     * @param pageSize
     * @param iRequest
     */
    public void getReplyMessageCenterInfos(int page, int pageSize,
            IRequest<List<MessageCenterInfo>> iRequest);

    /**
     * 消息中心 @ 我的
     * 
     * @param page
     * @param pageSize
     * @param iRequest
     */
    public void getAtMessageCenterInfos(int page, int pageSize,
            IRequest<List<MessageCenterInfo>> iRequest);


    /**
     * 消息中心信息列表 new
     * 
     * @param page
     * @param pageSize
     * @param iRequest
     */
    public void getMyMessageInfo(int page, int pageSize, IRequest<MyMessageInfo> iRequest);

    /**
     * http://bbs.chinapet.com/plugin.php?id=leepet_thread:api&action=notice_delete&notice_id=130852
     */
    public void deleteNoticeMessage(String noticeId, boolean issys, IRequest<Boolean> iRequest);

    /**
     * 检查用户名<br/>
     * http://bbs.chinapet.com/plugin.php?id=leepet_thread:api&action=checkusername&newusername=
     * test1xx
     */
    public void quickLoginByQQ(String username, String conuin, String conuinsecret,
            String conopenid, String userparm, final IRequest<Map<String, Object>> iRequest);

    public void quickLoginBySina(String username, String sina_uid, String token,
            String oauth2_expiretime, IRequest<Map<String, Object>> iRequest);

    /**
     * @param username
     * @param weixin_expires_in //超时时间
     * @param weixin_openid //唯一标识
     * @param weixin_access_token //token
     * @param iRequest
     */
    public void quickLoginByWeiXin(String username, String weixin_expires_in, String weixin_openid,
            String weixin_access_token, IRequest<Map<String, Object>> iRequest);

    /**
     * 绑定微博 params.put("sina_uid", MoccaPreferences.SINA_UID.get()); params.put("token",
     * MoccaPreferences.SINA_ACCESS_TOKEN.get()); params.put("oauth2_expiretime",
     * MoccaPreferences.SINA_EXPIRES_IN.get()); params.put("username", username2);
     * params.put("password", password2);
     * 
     * @param username
     * @param iRequest
     */
    public void bindSina(String sina_uid, String token, String oauth2_expiretime, String username,
            String password, IRequest<Map<String, Object>> iRequest);

    /**
     * 绑定QQ params.put("username", username2); params.put("password", password2);
     * params.put("conuin", ""); params.put("conuinsecret", ""); params.put("conopenid",
     * ConstantsValue.info.openid);
     * 
     * @param username
     * @param iRequest
     */
    public void bindQQ(String conuin, String conuinsecret, String conopenid, String username,
            String password, IRequest<Map<String, Object>> iRequest);

    /**
     * 点击消息更改状态
     * 
     * @param noticeId
     * @param iRequest
     */
    public void noticeClick(String noticeId, IRequest<Boolean> iRequest);

    public void noticeCleanAllNew(IRequest<Boolean> iRequest);

    public void userLocalCheck(String friendTid, String meituTid, double lat, double lng,
            String address, String jpush, String phoenType, String phonesystem,
            String phonesystemver, String clientver, IRequest<HasNew> iReques);

    // 积分任务列表
    public void getMyTasklist(IRequest<List<MyTasklist>> iRequest);


    // 积分商城轮播
    public void getChangePager(IRequest<List<InteralBanner>> iRequest);



    /** 主页广告 */
    public void getIndexBanner(String type, IRequest<HomeBannerEntity> iRequest);

    /** 获取推荐圈子 */
    public void getGroups(IRequest<Groups> iRequest);

    /**
     * 积分商城列表
     * 
     * @param iRequest
     */
    public void getChangeList(IRequest<List<InteralList>> iRequest);

    /**
     * 美图列表
     * 
     * @param iRequest
     */
    public void getBeautifulList(int page, int pageSize, IRequest<MainZuixinData> iRequest);


    /**
     * 获取我的圈子
     * 
     * @param iRequest
     */
    public void getMyGroups(IRequest<List<GroupInfo>> iRequest);

    /**
     * 获取推荐的圈子列表
     */
    public void getRecommendGroups(IRequest<List<GroupInfo>> iRequest);

    /** 我的圈子 */
    public void getMineGroups(IRequest<Groups> iRequest);

    /** 圈子动态列表 */
    public void getDongtaiList(RequestParams params, IRequest<PostListEntity> iRequest);

    /** 加入圈子左边第一列 */
    public void getOneGroups(IRequest<Groups> iRequest);

    /** 加入圈子左边第二列 */
    public void getTwoGroups(String fid, IRequest<Groups> iRequest);

    /**
     * 积分商品详情
     */
    public void getChangeDesc(String exid, IRequest<InteralGoodsdesc> iRequest);


    /**
     * <<<<<<< HEAD 主页获取数据接口 ======= 主页获取数据接口 <<<<<<< HEAD >>>>>>>
     * 12c672b9022fe258415a871fb2d872f55f3e5221
     * 
     * @param page 页码
     * @param String 每页获取多少数据
     * @param iRequest 返回
     */
    public void getMainDatas(String page, String String, IRequest<MainDatas> iRequest);

    /**
     * 加入圈子是否成功
     * 
     * @param fid 加入的圈子id
     * @param context
     * @param iRequest
     * @return
     */
    public boolean joinGroup(String fid, Context context, IRequest<Boolean> iRequest);

    /**
     * 退出圈子是否成功
     * 
     * @param fid 退出圈子id
     * @param context
     * @param iRequest
     * @return
     */
    public boolean outGroup(String fid, Context context, IRequest<Boolean> iRequest);

    /**
     * 获取我的收藏
     * 
     * @param uid
     * @param page
     * @param pageSize
     * @param iRequest
     */
    public void getMyCollect(String uid, int page, int pageSize, IRequest<List<Message>> iRequest);

    /**
     * <<<<<<< HEAD 获取我的粉丝
     * 
     * @param uid
     * @param page
     * @param pageSize
     * @param iRequest
     */
    public void getFollowFans(String uid, int page, int pageSize, IRequest<Fans> iRequest);

    /**
     * 获取我的关注
     * 
     * @param uid
     * @param page
     * @param pageSize
     * @param fid 圈子id，发帖引用的好友的时候需要用到，获取圈子的版主
     * @param iRequest
     */
    public void getFollowList(String uid, int page, int pageSize, String fid,
            IRequest<Fans> iRequest);

    /**
     * 我的牛牛币记录
     * 
     * @param pageFirst
     * @param pageSize
     * @param iRequest
     */
    public void getNiuniuRecord(int pageFirst, int pageSize, IRequest<List<NiuniuRecord>> iRequest);

    /**
     * 签到记录
     * 
     * @param iRequest
     */
    public void getQiandaoRecord(int pageFirst, int pageSize, IRequest<QiandaoRecord> iRequest);

    /**
     * 兑换商品记录
     * 
     * @param pageFirst
     * @param pageSize
     * @param iRequest
     */
    public void getGoodsRecord(int pageFirst, int pageSize, IRequest<List<GoodsRecord>> iRequest);

    /**
     * 兑换商品 加记录
     * 
     * @param uid
     * @param ex_id
     * @param address_id
     * @param iRequest
     * @return
     */
    public void addIntegralGoods(String uid, String ex_id, String address_id,
            IRequest<Pair<Boolean, String>> iRequest);

    /**
     * 获取榜单的数据
     * 
     * @param page 页码
     * @param String 每页获取多少数据
     * @param iRequest 返回
     */
    public void getBangDatas(String page, String pagesize, IRequest<MainDatas> iRequest);

    /**
     * 获取达人数据
     * 
     * @param page
     * @param pagesiez
     * @param type
     * @param iRequest
     */
    public void getDaYenDatas(String page, String pagesiez, String type, IRequest<Dayens> iRequest);

    /**
     * 扣除牛牛币
     * 
     * @param need
     * @param iRequest
     */
    public void deleteIntegral(String goodsid, String need, IRequest<Pair<Boolean, String>> iRequest);

    /**
     * 签到
     * 
     * @param iRequest
     */
    public void goToSign(IRequest<Pair<Boolean, String>> iRequest);

    /**
     * 获取首页推荐
     */
    public void getHomeRecommendGroups(IRequest<Groups> iRequest);

    /**
     * 获取首页推荐
     */
    public void getClubDetail(String fid, IRequest<PostListEntity2> iRequest);

    /**
     * 分享加牛牛币
     * 
     * ============================================================================================
     * ================== 测试地址：
     * http://bbs.chinapet.com/plugin.php?id=leepet_thread:api&action=sharesend
     * &come=threadpost&type=weixin&tid=1123 主要参数说明： type=weixin 或 weibo 或 qzone tid=帖子ID
     * come=threadpost帖子发表，threadshow帖子详情页
     * ==========================================================
     * ==================================================== {"result":"0","msg":"","niuniu":"5"}
     * 返回主要字段说明： niuniu=牛牛币（若大于0，需要给用户打印）
     */
    public void shareSend(String come, String type, String tid,
            IRequest<KeyValuePair<Integer, String>> iRequest);

    /**
     * 兑换
     * 
     * @param ex_id
     * @param address_id
     * @param iRequest
     */
    public void getExchangeResult(String ex_id, String address_id, IRequest<ExchangeResult> iRequest);

    /**
     * 取消兑换
     * 
     * @param ex_id
     * @param address_id
     * @param iRequest
     */
    public void getQuxiaoExchangeResult(String integral_id, IRequest<ExchangeResult> iRequest);

    /**
     * 免费试用
     * 
     * 
     */
    public void getFreeUseListDataResult(String page, String pageSize,
            IRequest<List<FreeUseListData>> iRequest);

    /**
     * 站内分享,分享到尾巴好友
     * 
     * 
     */
    public void getShareToWeiba(String uidlist, String tid, String content,
            IRequest<ShareToWeibaResult> iRequest);


    /**
     * 申请试用
     * 
     * @param tid
     * @param iRequest
     */
    public void activityApply(String tid, String realname, String address, String mobile,
            String message, IRequest<BaseEntity> iRequest);

    /**
     * 商城获取banner数据
     * 
     * @param iRequest
     */
    public void getShopBanners(String positionId, IRequest<List<HomeBanner>> iRequest);

    /**
     * 新用户邀请码注册
     * 
     * @param tid
     * @param iRequest
     */
    public void getRequestCodeInfo(String requestCode, IRequest<BaseEntity> iRequest);

    /**
     * 我的邀请信息
     * 
     * @param iRequest
     */
    public void getInviteInfo(IRequest<InviteInfo> iRequest);

    /**
     * 我的邀请信息
     * 
     * @param iRequest
     */
    public void getRequestFriends(IRequest<MyRequestFriend> iRequest);

    /**
     * 我的邀请信息
     * 
     * @param iRequest
     */
    public void getSecondClasses(String parentID, IRequest<SecondClass> iRequest);

    /**
     * 获取品牌信息
     * 
     * @param iRequest
     */
    public void getBrandInfo(IRequest<BrandBean> iRequest);

    /**
     * 获取新品列表
     * 
     * @param iRequest
     */
    public void getNewGoods(IRequest<List<Product>> iRequest);


    /**
     * 获取商品详情
     * 
     * @param goodsID
     * @param userID
     * @param iRequest
     */
    public void getShopDetail(String goodsID, String userID, IRequest<Product> iRequest);

    /**
     * 获取商品内容
     */
    public void getShopDetailInfo(String goodsID, IRequest<GoodsInfos> iRequest);

    /**
     * 获取商品规格
     */
    public void getShopDetailStandardInfo();


    /**
     * 获取类目下的商品列表
     */
    public void getGoodsListInfo(String page, String pagesize, String brandID, String catID,
            IRequest<GoodsListInfo> iRequest);

    /**
     * 获取商品评论
     * 
     * @param goodsID
     * @param type
     * @param page
     * @param pageSize
     * @param iRequest
     */
    public void getShopDetailComment(String goodsID, int type, int page, int pageSize,
            IRequest<CommentInfos> iRequest);

    /**
     * 获取首页 最新 帖子列表
     * 
     * @param page
     * @param pageSize
     * @param iRequest
     */
    public void getMainZuixinData(int page, int pageSize, IRequest<MainZuixinData> iRequest);

    /**
     * 标签页 帖子列表
     * 
     * @param tagid
     * @param page
     * @param pageSize
     * @param iRequest
     */
    public void getTagListData(String tagid, int page, int pageSize,
            IRequest<MainZuixinData> iRequest);

    /**
     * 好友 帖子列表
     * 
     * @param page
     * @param pageSize
     * @param iRequest
     */
    public void getMainFriendData(int page, int pageSize, IRequest<MainZuixinData> iRequest);

    /**
     * 点赞
     * 
     * @param tid
     * @param uid
     * @param iRequest
     */
    public void praise(String tid, String uid, final IRequest<RecommendInfo> iRequest);

    /**
     * 获取所有评论
     * 
     * @param pid
     * @param iRequest
     */
    public void getComments(String pid, int page, int pagesize, IRequest<PostCommentInfos> iRequest);

    /**
     * 评论楼层
     * 
     * @param tid
     * @param pid
     * @param conent
     * @param touid
     * @param iRequest
     */
    public void commentLayer(String tid, String pid, String content, String touid,
            IRequest<BaseEntity> iRequest);

    /**
     * 帖子点赞列表
     * 
     * @param tid
     * @param page
     * @param pagesize
     * @param iRequest
     */
    public void getZanListData(String tid, int page, int pagesize, IRequest<ZanListData> iRequest);

    /**
     * 获取是晒图列表数据
     * 
     * @param params
     * @param iRequest
     */
    public void getNearPicList(int page, int pageSize, IRequest<NearPictureBean> iRequest);


    /**
     * 我参加的活动
     * 
     * @param page
     * @param pageSize
     * @param iRequest
     */
    public void getMyJoinActivity(int page, int pageSize, IRequest<NearPictureBean> iRequest);

    public void getSplashPictureData(int page, int pageSize, String actid, String filter,
            IRequest<SplashPictureBean> iRequest);

    /**
     * @param iRequest 获取活动首页banner数据
     */
    public void getNearByInfo(IRequest<List<NearByInfo>> iRequest);

    public void getActivityBannerData(String tid, IRequest<PostLandlordInfos> iRequest);

    /**
     * 获取 主页 推荐圈子
     * 
     * @param params
     * @param iRequest
     */
    public void getRecommendCicleData(IRequest<RecommendCicleData> iRequest);



    /**
     * 获取我的宠物
     * 
     * @param uid
     * @param iRequest
     */
    public void getMyPetList(String uid, IRequest<PetInfo> iRequest);

    /**
     * 获取标签
     */
    public void getMyTags(IRequest<TagInfos> iRequest);


    public void getPostImgData(String tid, IRequest<PostImgData> iRequest);

    /**
     * 详情--收藏
     * 
     * @param tid
     * @param uid
     * @param iRequest
     */
    public void collect(String tid, String uid, IRequest<BaseEntity> iRequest);

    /**
     * 详情--取消收藏
     * 
     * @param tid
     * @param uid
     * @param iRequest
     */
    public void cancelCollect(String tid, String uid, IRequest<BaseEntity> iRequest);

    /**
     * 详情--举报
     * 
     * @param tid
     * @param uid
     * @param pid
     * @param iRequest
     */
    public void report(String tid, String uid, String pid, IRequest<BaseEntity> iRequest);

    public void getMyReplyInfos(int page, int pageSize, IRequest<MyReplyInfos> iRequest);

    public void getDeleteAddressInfo(String userID, String addressID, IRequest<BaseEntity> iRequest);

    /**
     * 封号+禁言
     * 
     * @param isFenghao
     * @param userID
     * @param iRequest
     */
    public void fengHaoOrJinYan(boolean isFenghao, String toUserID, IRequest<BaseEntity> iRequest);

    /**
     * 取消赞
     * 
     * @param tid
     * @param iRequest
     */
    public void cancelPraise(String tid, IRequest<BaseEntity> iRequest);

    /**
     * 加精
     * 
     * @param tid
     * @param iRequest
     */
    public void addJing(String tid, IRequest<BaseEntity> iRequest);

    /**
     * 删帖
     * 
     * @param tid
     * @param iRequest
     */
    public void deletePost(String tid, IRequest<BaseEntity> iRequest);

    /**
     * 打赏
     * 
     * @param tid
     * @param pid
     * @param reason
     * @param score
     * @param iRequest
     */
    public void daShang(String tid, String pid, String reason, String score,
            IRequest<BaseEntity> iRequest);

    /**
     * 删除回复
     * 
     * @param tid
     * @param pid
     * @param iRequest
     */
    public void deleteReply(String tid, String pid, IRequest<BaseEntity> iRequest);

    /**
     * 得到剩余打赏尾巴数
     * 
     * @param iRequest
     */
    /*
     * 查看榜单
     * 
     * @param page
     * 
     * @param pageSize
     * 
     * @param iRequest
     */
    public void getRankingList(int page, int pageSize, IRequest<BaseEntity> iRequest);

    public void getRestDaShangWeiBa(IRequest<DaShangRest> iRequest);

    /**
     * 得到打赏记录
     * 
     * @param tid
     * @param pid
     * @param iRequest
     */
    public void getDaShangRecord(String tid, String pid, int page, int pagesize,
            IRequest<DaShangRecord> iRequest);

    /**
     * 得到 分享的人 列表
     * 
     * @param tid
     * @param page
     * @param pagesize
     * @param iRequest
     */
    public void getShareRecordInfo(String tid, int page, int pagesize,
            IRequest<ShareRecordInfo> iRequest);

    /**
     * <<<<<<< HEAD 得到榜单中 点赞列表
     * 
     * @param actid
     * @param page
     * @param pagesize
     * @param iRequest
     */
    public void getDianZanListData(String actid, int page, int pagesize,
            IRequest<DianZanListData> iRequest);

    /**
     * 得到榜单中 热议列表
     * 
     * @param actid
     * @param page
     * @param pagesize
     * @param iRequest
     */
    public void getReYiListData(String actid, int page, int pagesize,
            IRequest<ReYiListData> iRequest);

    /**
     * 修改性别
     * 
     * @param sex
     * @param iRequest
     */
    public void getChangeSex(String sex, IRequest<BaseEntity> iRequest);

    /**
     * 修改地址
     * 
     * @param province
     * @param city
     * @param area
     * @param iRequest
     */
    public void getChangeArea(String province, String city, String area,
            IRequest<BaseEntity> iRequest);

    /**
     * 搜索活动详情中用户的帖子
     * 
     * @param keyword
     * 
     * @param iRequest
     */
    public void getPostByUser(String keyword, IRequest<SplashPictureBean> iRequest);

    /**
     * 查询附近的地址
     * 
     * @param keyword
     * @param iRequest
     */
    public void getNearLocationInfos(int pageNum, int pageSize, String query, String location,
            IRequest<List<Locations>> iRequest);

    /**
     * 搜索我收藏的帖子
     * 
     * @param keyword
     * @param iRequest
     */
    public void getSearchCollection(String keyword, IRequest<List<Message>> iRequest);

    /**
     * 搜索我的好友
     * 
     * @param keyword
     * @param iRequest
     */
    public void searchMyAttention(String keyword, IRequest<Fans> iRequest);

    /**
     * 搜索我的好友
     * 
     * @param keyword
     * @param iRequest
     */
    public void searchMyFans(String keyword, IRequest<Fans> iRequest);
}
